<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>多重回调</title>
  </head>
  <body>
    <script>
      // 创建一个函数 loadData，它模拟从服务器加载数据的异步操作。
      // 该函数接受一个数据类型和一个回调函数。
      // 如果数据加载成功，调用回调函数并传递加载的数据，否则传递一个错误消息。
      // [代码]
      // 调用loadData，加载数据类型typeA成功之后，再加载数据类型typeB
      // [代码]
      function loadData(dataType, callback) {
    setTimeout(() => {
      if (Math.random() > 0.5) {
        const data = `Loaded data of type ${dataType}`;
        callback(null, data);
      } else {
        const errorMessage = `Failed to load data of type ${dataType}`;
        callback(errorMessage, null);
      }
    }, 1000);
  }
  
  loadData('typeA', (errorA, dataA) => {
    if (errorA) {
      console.log(errorA);
    } else {
      console.log(dataA);
      loadData('typeB', (errorB, dataB) => {
        if (errorB) {
          console.log(errorB);
        } else {
          console.log(dataB);
        }
      });
    }
  });
    </script>
  </body>
</html>
